home *** CD-ROM | disk | FTP | other *** search
- #define ABOUT_Y_REG 42
- #define ABOUT_Y_LACED 142
- #define FP 1 /*Pen for filenames in YAFR (white)*/
- #define DP 3 /* " " dirnames " " (orange)*/
-
- NewAll() /*Get rid of all the Items*/
- {
- char Buffer[10];
-
- FreeListMem(FirstItem,LastItem);
-
- DoubleSpc=0;
- MenuItem1.Flags=CHECKIT+ITEMTEXT+COMMSEQ+MENUTOGGLE+ITEMENABLED+HIGHCOMP;
- SubItems[StartingLevel]->Flags-=CHECKED; /*Restore StartingLevel to 0*/
- StartingLevel=0;
- SubItems[0]->Flags+=CHECKED;
-
- FirstItem=LastItem=FirstScrnItem=ScrnBtm=CurrentItem=
- (struct LineItem *)AllocMem(sizeof(struct LineItem),MEMF_CLEAR);
- CurrentItem->Level=1;
- Buffer[0]=0x0c;
- WriteConsole(Buffer,1);
- PrintItemList(CurrentItem,1);
- PlotCursor(MinX(CurrentItem),CurY);
- Modified=FALSE;
- TitleErrorCancel();
- MenuItem1.Flags=CHECKIT+ITEMTEXT+COMMSEQ+MENUTOGGLE+ITEMENABLED+HIGHCOMP;
- return(TRUE);
- }
-
- /*I think most of these are self explanatory (HandleNew() handles the New*/
- /*item in the Project menu, etc.)*/
- HandleNew()
- {
- if(AreYouSure(Window))
- {
- NewAll();
- FileName[0]=NULL; /*Remove default filenames*/
- SFileName[0]=NULL;
- PDName[0]=NULL;
- PFileName[0]=NULL;
- TitleErrorCancel();
- }
- }
-
- HandleOpen()
- {
- if(GetFilename(SFileName,SDirName,SExt,FileName,24,9,
- "Enter filename for open",Screen,FP,DP,TRUE))
- {
- if(Modified)
- if(!AreYouSure(Window))
- return(FALSE);
-
- if(ReadItemList(FileName))
- {
- Modified=FALSE;
- TitleErrorCancel(); /*Write current filename in Title bar*/
- } /*if there was no error*/
- }
- }
-
- Save()
- {
- if(FileName[0]==NULL)
- HandleSaveAs();
- else
- {
- WriteItemList(FileName);
- Modified=FALSE;
- TitleErrorCancel();
- }
- }
-
- HandleSaveAs()
- {
- if(GetFilename(SFileName,SDirName,SExt,FileName,24,9,
- "Enter filename for save",Screen,FP,DP,TRUE))
- {
- if(WriteItemList(FileName))
- {
- Modified=FALSE;
- TitleErrorCancel(); /*Update filename in title bar*/
- } /*if there was no error*/
- }
- }
-
- HandlePrintDisk()
- {
- struct FileHandle *fp;
- char *buffer;
- struct LineItem *Item;
-
- if(!GetFilename(PFileName,PDirName,PExt,PDName,24,9,
- "Enter filename for print",Screen,FP,DP,TRUE))
- return(FALSE);
-
- if((fp=(struct FileHandle *)Open(PDName,MODE_NEWFILE))==NULL)
- {
- TitleError("Can't open file!");
- return(FALSE);
- }
-
- buffer=(char *)AllocMem(90,MEMF_CHIP|MEMF_CLEAR);
-
- Item=(struct LineItem *)FirstItem;
- while(Item != NULL)
- {
- strcpy(buffer,"");
- GetOutlineChars(Item,buffer);
- strcat(buffer," ");
- strcat(buffer,Item->Text);
- Write(fp,&buffer[Indent],strlen(&buffer[Indent]));
- buffer[0]=0x0a;
- Write(fp,buffer,1);
- if(DoubleSpc)
- Write(fp,buffer,1); /*If double spaced, print another RETURN*/
- Item=(struct LineItem *)Item->NextItem;
- }
- FreeMem(buffer,90);
- Close(fp);
- return(TRUE);
- }
-
- HandlePrintPrinter()
- {
- struct FileHandle *fp;
- char *buffer,RetBuf[5],Printed=0;
- struct LineItem *Item;
-
- if((fp=(struct FileHandle *)Open("prt:",MODE_OLDFILE))==NULL)
- {
- TitleError("Can't open printer!");
- return(FALSE);
- }
- buffer=(char *)AllocMem(90,MEMF_CHIP|MEMF_CLEAR);
- RetBuf[0]=0x0d;
- RetBuf[1]=0x0a;
- if(DoubleSpc)
- {
- RetBuf[2]=0x0d;
- RetBuf[3]=0x0a;
- RetBuf[4]=0;
- }
- else
- RetBuf[2]=0;
-
- Item=(struct LineItem *)FirstItem;
- while(Item != NULL)
- {
- for(Printed=0;Printed < 60 && Item != NULL;Printed+=(1+DoubleSpc))
- {
- strcpy(buffer,"");
- GetOutlineChars(Item,buffer);
- strcat(buffer," ");
- strcat(buffer,Item->Text);
- Write(fp,&buffer[Indent],strlen(&buffer[Indent]));
- strcpy(buffer,RetBuf);
- Write(fp,buffer,strlen(buffer));
- Item=(struct LineItem *)Item->NextItem;
- }
- buffer[0]=NEWPAGE;
- Write(fp,buffer,1);
- }
- FreeMem(buffer,90);
- Close(fp);
- return(TRUE);
- }
-
- HandleAbout()
- {
- int ctr;
- struct Window *AboutWdw;
-
- /*Get chip memory for the gadget image.*/
- if((ImageData1Chip=(USHORT *)AllocMem(420,MEMF_CHIP|MEMF_CLEAR))==NULL)
- return(FALSE);
-
- for(ctr=0;ctr<210;ctr++) /*Transfer image info into chip memory*/
- {
- ImageData1Chip[ctr]=ImageData1[ctr];
- }
-
- /*Do the same for the reversed image*/
- if((ImageData2Chip=(USHORT *)AllocMem(840,MEMF_CHIP|MEMF_CLEAR))==NULL)
- return(FALSE);
-
- for(ctr=0;ctr<420;ctr++) /*Transfer image info into chip memory*/
- {
- ImageData2Chip[ctr]=ImageData2[ctr];
- }
-
- NewAboutWindow.Screen=Screen; /*Pointer to window's screen*/
- Image1.ImageData=(USHORT *)ImageData1Chip;
- Image2.ImageData=(USHORT *)ImageData2Chip;
-
- if(Laced)
- NewAboutWindow.TopEdge=ABOUT_Y_LACED;
- else
- NewAboutWindow.TopEdge=ABOUT_Y_REG;
-
- if((AboutWdw=(struct Window *)OpenWindow(&NewAboutWindow))==NULL)
- { /*Open the window*/
- FreeMem(ImageData1Chip,420);
- FreeMem(ImageData2Chip,840);
- return(FALSE);
- }
-
- SetWindowTitles(AboutWdw,-1,"For your information...");
- SetAPen(AboutWdw->RPort,1);
- PrintIText(AboutWdw->RPort,&IntuiTextList2,0,0);
-
- /*Wait for the user to press the Continue... gadget*/
- Wait(1<<AboutWdw->UserPort->mp_SigBit);
-
- CloseWindow(AboutWdw); /*Close the window*/
- FreeMem(ImageData1Chip,420);
- FreeMem(ImageData2Chip,840);
- }
-
- HandleQuit()
- {
- if(Modified) /*Ask "Are you sure?" only if outline isn't saved*/
- {
- if(AreYouSure(Window))
- CloseStuff();
- }
- else
- CloseStuff();
- }
-
- HandleCut()
- {
- if(NOINV==InvsMode)
- return(FALSE);
- CheckModified();
- HandleCopy();
- HandleErase();
- }
-
- HandleCopy()
- {
- if(ClipMode < NOINV)
- FreeListMem(ClipStart,ClipEnd);
- ClipMode=InvsMode;
- if(InvsMode > NOINV)
- if(StartChar < EndChar)
- WriteInvsTextToClip(StartChar,EndChar-StartChar+1,CurrentItem->Text);
- else
- WriteInvsTextToClip(EndChar,StartChar-EndChar+1,CurrentItem->Text);
- else
- if(InvsMode == BLOCK_DOWN)
- SnagBlock(StartIItem,EndIItem);
- else
- SnagBlock(EndIItem,StartIItem);
- }
-
- HandlePaste()
- {
- int TempX;
-
- CheckModified();
- if(ClipMode < NOINV)
- AddBlock(CurrentItem);
- else
- {
- ReadItemString(PosInText(CurrentItem->Level),
- 79-PosInText(CurrentItem->Level),CurrentItem->Text);
- CurrentItem->Text[MaxLen(CurrentItem->Level)]=NULL;
- TempX=CurX;
- PlotCursor(1,CurY);
- PrintItem(CurrentItem);
- PlotCursor(TempX,CurY);
- }
- }
-
- HandleErase()
- {
- if(InvsMode==NOINV)
- return(FALSE);
-
- CheckModified();
- if(InvsMode > NOINV)
- DelTextBlock();
- else
- HandleDelBlock();
- InvsMode=NOINV;
-
- }
-
- DoubleSpacing()
- {
- CheckModified();
- DoubleSpc=DoubleSpc ^ 1; /*XOR DoubleSpc w/1 to toggle between*/
- } /*true and false*/
-
- HandleInterlaced() /*Toggle between normal and interlaced screen*/
- {
- UBYTE X,Y;
- X=CurX;
- Y=CurY; /*Store cursor position*/
- CloseGraphics();
- if(Laced) /*If interlaced*/
- {
- NewScreen.Height=200;
- NewWindow.Height-=200;
- NewScreen.ViewModes=HIRES; /*Remove LACE from screen description*/
- SCRNHEIGHT-=25; /*Rows*/
- Laced=FALSE; /*Status switch*/
- }
- else /*not interlaced*/
- {
- NewScreen.Height=400;
- NewWindow.Height+=200;
- NewScreen.ViewModes=HIRES+LACE; /*Add LACE to screen description*/
- SCRNHEIGHT+=25; /*Rows*/
- Laced=TRUE;
- }
-
- OpenGraphics();
- PrintItemList(FirstScrnItem,1);
- if(Y > DispRows) /*if the old laced Y is > the current possible rows*/
- {
- Y=DispRows; /*Y now = the last screen item*/
- CurrentItem=(struct LineItem *)ScrnBtm;
- }
- if(X > MaxX(CurrentItem)) /*Out of bounds*/
- X=MaxX(CurrentItem);
- else if(X < MinX(CurrentItem))
- X=MinX(CurrentItem);
-
- PlotCursor(X,Y); /*Restore cursor position*/
- }
-
- HandleFirst() /*Handle 'Starting Level' menu item*/
- {
- CheckModified();
- StartingLevel=0;
- Refresh();
- }
-
- HandleSecond()
- {
- CheckModified();
- StartingLevel=1;
- Refresh();
- }
-
- HandleThird()
- {
- CheckModified();
- StartingLevel=2;
- Refresh();
- }
-
- HandleFourth()
- {
- CheckModified();
- StartingLevel=3;
- Refresh();
- }
-
- HandleFifth()
- {
- CheckModified();
- StartingLevel=4;
- Refresh();
- }
-
- HandleSixth()
- {
- CheckModified();
- StartingLevel=5;
- Refresh();
- }
-
- Refresh()
- {
- UBYTE OldX,OldY;
- OldX=CurX;
- OldY=CurY;
-
- PrintItemList(FirstScrnItem,1);
- if(OldX < MinX(CurrentItem))
- OldX=MinX(CurrentItem);
- else
- if(OldX > MaxX(CurrentItem))
- OldX=MaxX(CurrentItem);
-
- PlotCursor(OldX,OldY);
- }
-
- CheckModified()
- {
- if(Modified==FALSE)
- {
- Modified=TRUE;
- TitleErrorCancel();
- }
- }
-
-
-